Programming language grammars are used to generate parsers for determining the syntax validity of programming language statements. Some parsers read tokens that are extracted by lexical analyzers from input streams that include programming language statements. Error indications can be provided when parsers encounter incorrect syntax.
Users of text editors can find symbols required by a programming language syntax difficult or hard to type. This difficulty can arise because some keyboards are not designed for use with programming languages, requiring extended reaching or the use of shift keys to enter some common, but hard-to-type symbols. Entering such hard-to-type symbols can require additional effort by the user and may reduce the user's efficiency. Further, because the symbols are hard to type, users can make errors and re-compile a collection of programming language statements more than necessary if fewer errors were made.